<?php session_start();
    include_once ("../bussines/ProductoBR.php");
    include_once ("../entity/Producto.php");
    
    if(file_exists("../entity/Constantes.php")){
        include_once ("../entity/Constantes.php");
    }
    
    if(isset($_POST["opc"])){
        
        $codigo = $_POST["codigo"];
        $nombre = $_POST["nombre"];
        $codigo_alterno = $_POST["codigo_alterno"];
        $cod_unidad = $_POST["cod_unidad"];
        $tipo = $_POST["tipo"];
        
        $usuario_crea = $_SESSION[Constantes::K_SESSION_CODIGO_USUARIO];
        $usuario_modi = $_SESSION[Constantes::K_SESSION_CODIGO_USUARIO];
        
        if($_POST["opc"]=="ins"){
            echo insertar($codigo_alterno,$nombre,$cod_unidad,$tipo,$usuario_crea);
        }elseif($_POST["opc"]=="get"){
            echo obtenerID($codigo,$nombre);
        }elseif($_POST["opc"]=="cod"){
            echo generarCodigo();
        }elseif($_POST["opc"]=="edi"){
            echo editar($codigo,$codigo_alterno,$nombre,$cod_unidad,$tipo,$usuario_modi);
        }elseif($_POST["opc"]=="del"){
            echo eliminar($codigo);
        }elseif($_POST["opc"]=="vdel"){
            echo validarEliminar($codigo);
        }
    }
    
    if($_POST["opc"]=="bus"){
        
        $page = $_POST['page'];
        $limit = $_POST['rows'];
        $sidx = $_POST['sidx'];
        $sord = $_POST['sord'];

        //$codigo = $_POST["codigo"];
        $codigo_alterno = $_POST["codigo_alterno"];
        $nombre = $_POST["nombre"];
            
        if (!$sidx){
            $sidx = 1;
        }
        
        echo mostrarProductoGrilla($codigo_alterno, $nombre, $page, $limit, $sidx, $sord);
    }
    function validarEliminar($codigo){
        $vdel = new ProductoBR();
        $result = $vdel->validarEliminar($codigo);
        
        if($result > 0){
            $msj = ConstantesMensajes::K_MENSAJE_VALIDAR_PRODUCTO_PRODUCTOALMACEN_EXISTE;
        }else{
            $msj = '0';
        }
        return $msj;
    }
    function eliminar($codigo){
        $del = new ProductoBR();
        $entity = new Producto();
        $entity->codigo = $codigo;
        
        $result = $del->eliminar($entity);
        
        if($result==1){
            $msj = ConstantesMensajes::K_MENSAJE_DELETE_OK;
        }else{
            $msj = ConstantesMensajes::K_MENSAJE_DELETE_NOOK;
        }
        return $msj;
    }
    
    function editar($codigo,$codigo_alterno,$nombre,$cod_unidad,$tipo,$usuario_modi){
        $edi = new ProductoBR();
        $entity = new Producto();
        $entity->codigo = $codigo;
        $entity->codigo_alterno = $codigo_alterno;
        $entity->nombre = $nombre;
        $entity->cod_unidad = $cod_unidad;
        $entity->tipo = $tipo;
        $entity->usuario_modi = $usuario_modi;
        
        $result = $edi->editar($entity);
        
        if($result==1){
            $msj = ConstantesMensajes::K_MENSAJE_UPDATE_OK;
        }else{
            $msj = ConstantesMensajes::K_MENSAJE_UPDATE_NOOK;
        }
        return $msj;
    }
    
    function generarCodigo(){
        $cod = new ProductoBR();
        $result = $cod->generarCodigo();
        
        return json_encode($result);
    }
    
    function obtenerID($codigo,$nombre){
        $get = new ProductoBR();
        $entity = new Producto();
        $entity->codigo = $codigo;
        $entity->nombre = $nombre;
        
        $result = $get->obtenerID($entity);
        
        return json_encode($result);
    }
        
    function insertar($codigo_alterno,$nombre,$cod_unidad,$tipo,$usuario_crea){
        $ins = new ProductoBR();
        $entity = new Producto();
        $entity->codigo_alterno = $codigo_alterno;
        $entity->nombre = $nombre;
        $entity->cod_unidad = $cod_unidad;
        $entity->tipo = $tipo;
        $entity->usuario_crea = $usuario_crea;
        
        $result = $ins->insertar($entity);
        
        if($result == 1){
            $msj = ConstantesMensajes::K_MENSAJE_INSERT_OK;
        }else{
            $msj = ConstantesMensajes::K_MENSAJE_INSERT_NOOK;
        }
        return $msj;
    }
    
    function mostrarProductoGrilla($codigo_alterno, $nombre, $page, $limit, $sidx, $sord){
        $bus = new ProductoBR();
        $entity = new Producto();
        $entity->codigo_alterno = $codigo_alterno;
        $entity->nombre = $nombre;
        
        $count = $bus->numeroRegistro($codigo_alterno, $nombre);
        
        if ($count > 0) {
            $total_pages = ceil($count / $limit);
        } else {
            $total_pages = 0;
        }
        if ($page > $total_pages){
            $page = $total_pages;
        }
        $start = $limit * $page - $limit;
        $responce->page = $page;
        $responce->total = $total_pages;
        $responce->records = $count;
        $i = 0;
        
        $productos = $bus->BuscarSearch($entity, $start, $limit, $sidx, $sord);
        
        if(sizeof($productos)){
            foreach ($productos as $fila){
                $responce->rows[$i]['id'] = $fila->codigo;
                $responce->rows[$i]['cell'] = array($fila->codigo,$fila->codigo_alterno, $fila->nombre,$fila->cod_unidad,$fila->unidad_medida,$fila->tipo,$fila->descrip_tipo);
                $i++;
            }
        }
        
        
        return json_encode($responce);
    }
?>
